Skip to content

feat: add sanitized diagnostics log bundle#562

Merged
shanselman merged 1 commit into
openclaw:mainfrom
christineyan4:error-logs
Jun 27, 2026
Merged

feat: add sanitized diagnostics log bundle#562
shanselman merged 1 commit into
openclaw:mainfrom
christineyan4:error-logs

Conversation

@christineyan4

@christineyan4 christineyan4 commented May 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add a sanitized diagnostics bundle export flow for the WinUI tray app, including generated debug summary, connection event timeline, tray log tails, structured diagnostics JSONL, crash log, and setup log tails.
  • Shift the privacy boundary toward source-side sanitization before logs/diagnostics are written or recorded, with DiagnosticsExportRedactor kept as defense-in-depth for older/raw export text.
  • Refactor export redaction away from a broad regex-only approach: parser-style handling now covers private keys, signed handshakes, DPAPI blobs, agent session keys, command-line secret options, sensitive key/value pairs, GUID-like IDs, and common URL/path/token cleanup.
  • Improve diagnostics preview/copy readability by decoding common JSON escape sequences like \u0022 and escaped CRLFs before final redaction, while keeping plain Windows paths stable and guarding control/backslash unicode escapes.
  • Add fail-closed sanitizer-timeout handling for log-tail section sanitization and final full-bundle sanitization so a timeout produces [REDACTED_SANITIZER_TIMEOUT] instead of aborting export.
  • Preserve the preview-before-copy/save full diagnostics flow and native Win32 Save dialog for the self-hosted WinUI app.
  • Add regression coverage for redaction safety, readability, timeout behavior, split-line/nested secrets, missing files, and diagnostics page copy/preview contracts.

Validation

  • dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore --filter FullyQualifiedName~DiagnosticsExportRedactorTests
  • dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore --filter "FullyQualifiedName~DiagnosticsBundleBuilderTests|FullyQualifiedName~DiagnosticsPageContractTests"
  • .\build.ps1
  • dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore
  • dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore
  • dotnet test .\tests\OpenClaw.Connection.Tests\OpenClaw.Connection.Tests.csproj --no-restore
  • git diff --check
  • Hanselman-style adversarial review completed with Opus + Codex; follow-up fixes added for nested/double-escaped JSON secrets, conservative escape decoding for Windows paths, unicode control/backslash guards, deterministic escaped-CRLF decoding, and additional timeout/readability regression tests.

@clawsweeper

clawsweeper Bot commented May 27, 2026

Copy link
Copy Markdown

Codex review: needs changes before merge. Reviewed June 27, 2026, 12:37 AM ET / 04:37 UTC.

Summary
The PR adds a WinUI diagnostics bundle preview/copy/save flow with bounded sanitized log-tail export, source-side diagnostics sanitization, regression coverage, summary-only debug copy behavior, and chat metadata cache normalization changes.

Reproducibility: yes. for the review finding: the PR source treats the broad key fragment node as sensitive, and the posted current-head proof shows Nodes: [REDACTED] in the generated summary. I did not run the WinUI app because this was a read-only review.

Review metrics: 3 noteworthy metrics.

  • Diff surface: 31 files, +2925/-295. The PR spans sanitizer, WinUI diagnostics UI, file picker, localization, tests, and chat cache behavior, so maintainer review should not treat it as a narrow UI-only change.
  • Proof artifacts: 5 current-head artifacts. The posted gist and screenshots cover preview, full copy, saved file, and summary copy behavior, which materially improves review confidence.
  • Persisted cache surface: 1 chat cache implementation changed. OpenClawChatDataProvider changes serialization, normalization, and dirty-save behavior for persisted metadata outside the diagnostics exporter itself.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster ✨ media proof bonus
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P2] Fix the node-count over-redaction and add a focused regression test.
  • Have a maintainer explicitly accept or split the summary-only support workflow and chat-cache persistence changes.

Risk before merge

  • [P1] The PR makes sanitizer/export code a privacy boundary for credentials, local paths, device IDs, session keys, setup diagnostics, and support data; maintainers should explicitly accept that boundary before merge.
  • [P1] The direct debug-bundle copy and openclaw://debug-bundle path become summary-only while log tails move behind preview/save, which changes support workflows that expected one-click combined debug bundles.
  • [P1] The branch also changes persisted chat tool/attachment metadata normalization and dirty-save behavior in OpenClawChatDataProvider, so upgrade/session-cache behavior deserves maintainer review even with tests.

Maintainer options:

  1. Preserve harmless topology diagnostics (recommended)
    Adjust the sensitive-key rule so counts and status labels like Nodes: 1 survive while node IDs, device tokens, and session/auth material remain redacted, with regression coverage.
  2. Accept the privacy and support boundary
    A maintainer can explicitly accept the sanitizer/export boundary and summary-only debug copy behavior once the narrow diagnostic-signal bug is fixed.
  3. Split cache persistence changes
    If chat metadata cache normalization is not required for the diagnostics bundle, move it to a separate PR with its own upgrade review.

Next step before merge

  • [P2] A narrow automated repair can fix the node-count over-redaction and add regression coverage; maintainer acceptance of the privacy/support/cache boundary remains separate.

Security
Cleared: No supply-chain or obvious raw-secret leak regression was found in the diff; the sanitizer/export privacy boundary remains a maintainer merge-risk decision.

Review findings

  • [P3] Preserve non-secret node counts — src/OpenClaw.Shared/TokenSanitizer.cs:34
Review details

Best possible solution:

Fix the harmless node-count over-redaction, then land only after maintainers accept the diagnostics privacy boundary, summary-only support workflow change, and cache-state changes or split the unrelated cache work out.

Do we have a high-confidence way to reproduce the issue?

Yes for the review finding: the PR source treats the broad key fragment node as sensitive, and the posted current-head proof shows Nodes: [REDACTED] in the generated summary. I did not run the WinUI app because this was a read-only review.

Is this the best way to solve the issue?

Unclear as the final product path: the side-effect-free bounded export design matches the reviewer guidance, but the summary-only support workflow, privacy boundary, and cache-state changes need maintainer acceptance. The narrow node-count over-redaction should be fixed before merge.

Full review comments:

  • [P3] Preserve non-secret node counts — src/OpenClaw.Shared/TokenSanitizer.cs:34
    The broad sensitive-key list now includes node, so the final sanitizer treats support-summary lines like Nodes: 1 as secret key/value pairs. The posted current-head bundle shows this as Nodes: [REDACTED], which removes harmless topology context support needs; narrow this to real node identifiers/tokens or use the existing broad-node guard for summary text.
    Confidence: 0.97

Overall correctness: patch is correct
Overall confidence: 0.88

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 8b5ea3294b33.

Label changes

Label justifications:

  • P2: This is a normal-priority user-facing diagnostics/privacy improvement with bounded but important support and security-review impact.
  • merge-risk: 🚨 security-boundary: The PR broadens sanitizer/export code into the boundary that determines what sensitive diagnostic data may leave the device.
  • merge-risk: 🚨 compatibility: The documented debug-bundle copy/deep-link behavior changes from combined support bundle to summary-only output.
  • merge-risk: 🚨 session-state: The diff changes persisted chat tool and attachment metadata cache normalization and dirty-save behavior.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (linked_artifact): The PR includes current-head screenshots and linked text artifacts showing preview, full copy, saved file, and summary-only output; the node-count regression is a separate review finding.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR includes current-head screenshots and linked text artifacts showing preview, full copy, saved file, and summary-only output; the node-count regression is a separate review finding.
Evidence reviewed

Acceptance criteria:

  • [P1] ./build.ps1.
  • [P1] dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore.
  • [P1] dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore.

What I checked:

  • Repository policy read: AGENTS.md was read fully; its validation requirements and diagnostics/security guidance are applicable review context, but this read-only review did not run build/tests because they would write artifacts. (AGENTS.md:1, 8b5ea3294b33)
  • Side-effect-free bounded export path: The PR builder states export is read-only, excludes raw settings/key/media payloads, and caps files/lines/bytes/total bundle size while composing sanitized summaries and tails. (src/OpenClaw.Tray.WinUI/Services/DiagnosticsBundleBuilder.cs:74, a0d55f7dcf38)
  • Tail reader bounds and concurrent read behavior: The new tail reader opens logs read-only with FileShare.ReadWrite/Delete and sanitizes only the bounded tail plus context before emitting bundle lines. (src/OpenClaw.Tray.WinUI/Services/DiagnosticsLogTailReader.cs:67, a0d55f7dcf38)
  • Current supported debug-bundle contract: Current main documents openclaw://debug-bundle as copying a combined debug bundle for support, so changing that copy/deep-link behavior to summary-only is compatibility-sensitive. (README.md:349, 8b5ea3294b33)
  • Concrete sanitizer regression: The PR adds a broad 'node' sensitive-key fragment and substring key matching; the current-head proof artifact shows this redacts the harmless support summary line as 'Nodes: [REDACTED]'. (src/OpenClaw.Shared/TokenSanitizer.cs:34, a0d55f7dcf38)
  • Real behavior proof inspected: The public proof gist includes current-head full copy/save text and summary-only text; the copied and saved bundle content is present and shows sanitized markers, while also exposing the node-count over-redaction.

Likely related people:

  • AlexAlves87: Git blame and -S history tie the current TokenSanitizer and CommandCenterTextHelper diagnostic/support bundle surface to commit cfca9f5. (role: introduced behavior; confidence: high; commits: cfca9f59c6fc; files: src/OpenClaw.Shared/TokenSanitizer.cs, src/OpenClaw.Tray.WinUI/Helpers/CommandCenterTextHelper.cs, src/OpenClaw.Tray.WinUI/Services/DiagnosticsJsonlService.cs)
  • Régis Brid: Recent commits touched DebugPage and OpenClawChatDataProvider, which are central adjacent paths for this PR's UI and cache behavior changes. (role: recent adjacent contributor; confidence: medium; commits: 1a07759a7e6e, 4e7982bafb86; files: src/OpenClaw.Tray.WinUI/Pages/DebugPage.xaml.cs, src/OpenClaw.Tray.WinUI/Chat/OpenClawChatDataProvider.cs)
  • anagnorisis2peripeteia: Recent CommandCenterTextHelper work touched browser proxy diagnostics/guidance, making this person a lower-confidence adjacent routing candidate. (role: recent adjacent contributor; confidence: low; commits: a2e2773bb935; files: src/OpenClaw.Tray.WinUI/Helpers/CommandCenterTextHelper.cs)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. labels May 27, 2026
@clawsweeper

clawsweeper Bot commented May 27, 2026

Copy link
Copy Markdown

ClawSweeper PR egg

🔥 Warming up: real-behavior proof passed; findings, security review, or rank-up moves are still in progress.

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.
What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a sanitized “diagnostics bundle” export flow for the WinUI tray app, including robust redaction of secrets/identifiers and expanded bundle contents (log tails + structured diagnostics + crash/setup tails + connection timeline), along with new regression tests and a Win32-native “Save as” dialog for self-hosted WinUI.

Changes:

  • Introduce DiagnosticsExportRedactor and apply it to bundle generation and log tail reading (including final “whole-bundle” sanitization).
  • Add DiagnosticsBundleBuilder + DiagnosticsLogTailReader and update the debug/diagnostics UI to preview/copy/save the sanitized bundle.
  • Add new Shared/Tray tests covering redaction shapes, split-line secrets, missing files behavior, and bundle safety guarantees.
Show a summary per file
File Description
tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj Links new WinUI diagnostics services/helpers into Tray test project.
tests/OpenClaw.Tray.Tests/DiagnosticsPageContractTests.cs Adds contract tests to enforce “summary-only vs full bundle” UX boundaries.
tests/OpenClaw.Tray.Tests/DiagnosticsBundleBuilderTests.cs Adds tests for bundle contents, missing-file behavior, and split-line redaction.
tests/OpenClaw.Shared.Tests/DiagnosticsExportRedactorTests.cs Adds broad regression coverage for redaction patterns and context preservation.
src/OpenClaw.Tray.WinUI/Windows/DiagnosticsBundleDialog.xaml.cs Reworks Save flow to use Win32 picker + deferral so errors surface in UI.
src/OpenClaw.Tray.WinUI/Windows/DiagnosticsBundleDialog.xaml Replaces InfoBar with a custom “review before sharing” card-style header.
src/OpenClaw.Tray.WinUI/Strings/en-us/Resources.resw Updates strings for “summary debug bundle” and new dialog header UIDs.
src/OpenClaw.Tray.WinUI/Strings/fr-fr/Resources.resw Same localization updates as en-us.
src/OpenClaw.Tray.WinUI/Strings/nl-nl/Resources.resw Same localization updates as en-us.
src/OpenClaw.Tray.WinUI/Strings/zh-cn/Resources.resw Same localization updates as en-us.
src/OpenClaw.Tray.WinUI/Strings/zh-tw/Resources.resw Same localization updates as en-us.
src/OpenClaw.Tray.WinUI/Services/DiagnosticsLogTailReader.cs Adds sanitized + truncated log tail reader for bundle sections.
src/OpenClaw.Tray.WinUI/Services/DiagnosticsClipboardService.cs Renames “debug bundle” copy label to “summary debug bundle”.
src/OpenClaw.Tray.WinUI/Services/DiagnosticsBundleBuilder.cs Adds full bundle builder composing summaries, timeline, and sanitized tails.
src/OpenClaw.Tray.WinUI/Pages/DebugPage.xaml.cs Wires diagnostics bundle preview flow and copy actions.
src/OpenClaw.Tray.WinUI/Pages/DebugPage.xaml Updates UX copy to “Copy summary debug bundle” with exclusions noted.
src/OpenClaw.Tray.WinUI/Helpers/Win32FilePickerHelper.cs Adds Win32 Save dialog via COM IFileSaveDialog on STA thread.
src/OpenClaw.Tray.WinUI/App.xaml.cs Exposes recent connection diagnostic events for bundling.
src/OpenClaw.Shared/DiagnosticsExportRedactor.cs Adds centralized regex-based redaction for bundles/log exports.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 19/19 changed files
  • Comments generated: 9

Comment thread src/OpenClaw.Tray.WinUI/Pages/DebugPage.xaml.cs
Comment thread tests/OpenClaw.Tray.Tests/DiagnosticsPageContractTests.cs
Comment thread src/OpenClaw.Tray.WinUI/Helpers/Win32FilePickerHelper.cs
Comment thread src/OpenClaw.Tray.WinUI/Windows/DiagnosticsBundleDialog.xaml.cs Outdated
Comment thread src/OpenClaw.Tray.WinUI/Strings/en-us/Resources.resw Outdated
Comment thread src/OpenClaw.Tray.WinUI/Strings/fr-fr/Resources.resw
Comment thread src/OpenClaw.Tray.WinUI/Strings/nl-nl/Resources.resw Outdated
Comment thread src/OpenClaw.Tray.WinUI/Strings/zh-cn/Resources.resw Outdated
Comment thread src/OpenClaw.Tray.WinUI/Strings/zh-tw/Resources.resw Outdated
@christineyan4

Copy link
Copy Markdown
Contributor Author

Real behavior proof for diagnostics bundle privacy boundary:

  • “Create diagnostics bundle” opens a preview before log-tail diagnostics can be copied or saved.
  • Preview shows sanitized diagnostics/log content with useful context preserved.
  • “Save to file” opens the native Windows Save dialog.
  • Direct “Copy summary debug bundle” is summary-only and explicitly excludes log tails; log-tail diagnostics
    require the preview flow.
01-preview-dialog 02-native-save-dialog 03-summary-copy-card

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels May 27, 2026
@shanselman

Copy link
Copy Markdown
Contributor

This direction makes sense for a shareable diagnostics bundle, but the redactor is carrying a lot of regex responsibility in one place. I would not block solely because it uses regex — conservative over-redaction is probably right here — but I think it needs a maintainability/perf pass before merge: group the rules by threat class, consider source-generated regexes or clearly named rule objects, and add a worst-case/perf regression test so a long log line or malformed URL/token cannot cause pathological backtracking. The current test coverage for common secret shapes is good; my concern is mostly long-term maintainability and worst-case behavior.

@shanselman

Copy link
Copy Markdown
Contributor

I took a closer pass on the redaction implementation. The feature is valuable and regex is not inherently the wrong tool for free-form diagnostics, but I think this needs a small reliability/perf cleanup before merge.

Concrete concerns:

  1. RegexMatchTimeoutException can abort the whole export. DiagnosticsLogTailReader.BuildSection() calls DiagnosticsExportRedactor.Sanitize(...), but its catch filter only handles IO/unauthorized/not-supported exceptions. If a regex hits the 100ms timeout on a long/malformed log line, the timeout escapes and the diagnostics export fails. Please catch RegexMatchTimeoutException there and around the final full-bundle Sanitize(builder.ToString()) pass in DiagnosticsBundleBuilder.Build() so the bundle can include a sanitization-timeout sentinel instead of failing.

  2. SlackSigningSecretPattern looks redundant/dead. It matches exactly 32 hex chars, but HexTokenPattern runs earlier and matches 32+ hex chars, so it should already replace every value that SlackSigningSecretPattern could see. I’d remove the Slack-specific regex and document/test that HexTokenPattern covers that shape.

  3. KeyValueSecretPattern has unbounded key-prefix scans before a large alternation. With MaxLineChars = 8000, a long non-matching key can burn work until the timeout. Consider bounding the key prefix/suffix length, or using a small rule pipeline that parses the key and then checks sensitive-key words outside regex.

  4. Please add tests for the scary cases: timeout does not abort bundle export, redaction is idempotent, JSON non-string secret values are handled or explicitly documented as a known gap, version strings/IP false positives are documented, and one max-size/perf smoke proves the redactor budget stays reasonable.

Longer-term, because this is net10.0, source-generated regexes ([GeneratedRegex]) or named redaction-rule objects would make this much easier to audit than a flat list of compiled regex fields. I would not block on “regex exists”, but I would block on timeout handling and at least one worst-case/perf regression guard.

@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed proof: sufficient Contributor real behavior proof is sufficient. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 11, 2026
@christineyan4

Copy link
Copy Markdown
Contributor Author
Screenshot 2026-06-11 131134 Screenshot 2026-06-11 131119

@clawsweeper

clawsweeper Bot commented Jun 11, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot removed the proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. label Jun 11, 2026
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jun 26, 2026
@christineyan4

Copy link
Copy Markdown
Contributor Author

latest proof:
diagnostics bundle preview:
https://github.com/user-attachments/assets/7e912e67-8faa-4d69-ae6e-4200d15fe8d2

full bundle, copy/paste:
OpenClaw Windows Tray Diagnostics pasted.txt

full diagnostics bundle .txt, after clicking "save to file":
openclaw-diagnostics-20260626-134405.txt

summary bundle:
OpenClaw Windows Tray Debug Bundle summary.txt

for local validation: build + shared tests + tray tests passed on the latest commit.

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. merge-risk: 🚨 session-state 🚨 Merging this PR could lose, corrupt, stale, or mis-associate session or agent state. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jun 26, 2026
@christineyan4

Copy link
Copy Markdown
Contributor Author

Fresh current-head proof for diagnostics bundle flow at 802e44a6:

  • Preview dialog opens from Create diagnostics bundle.
  • Full Copy to clipboard output was captured.
  • Save to file output was captured.
  • Copied full bundle and saved bundle are byte-identical.
  • Full bundle includes bounded log-tail sections and sanitized markers.
  • Checks found no raw %USERPROFILE% path and no raw /home/<user> path in copied/saved full bundle text.
  • Summary-only debug bundle proof was captured separately and excludes log-tail sections.

Local validation on this head already passed: ./build.ps1, shared tests, tray tests, and git diff --check.

Artifacts prepared for attachment:

  1. 01-diagnostics-preview-current-head.png
  2. 02-full-bundle-copy-current-head.txt
  3. 03-saved-bundle-current-head.txt
  4. 04-summary-copy-menu-current-head.png
  5. 05-summary-copy-current-head.txt

@christineyan4

Copy link
Copy Markdown
Contributor Author

Text artifacts for the fresh current-head proof are also available here:

https://gist.github.com/christineyan4/93b473224ce4349cbbb11087b97cc74a

Included:

  • 02-full-bundle-copy-current-head.txt
  • 03-saved-bundle-current-head.txt
  • 05-summary-copy-current-head.txt
  • proof summary / validation note

The local screenshot artifacts prepared for upload are:

  • 01-diagnostics-preview-current-head.png
  • 04-summary-copy-menu-current-head.png

The text artifacts show current-head full copy/save output and summary-only content; full copy and save outputs are byte-identical, include sanitized log tails, and the summary artifact excludes log-tail sections.

@christineyan4

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 26, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@christineyan4

Copy link
Copy Markdown
Contributor Author

Updated proof gist now contains all five current-head artifacts:

https://gist.github.com/christineyan4/93b473224ce4349cbbb11087b97cc74a

Files:

  • 01-diagnostics-preview-current-head.png.base64.txt (preview screenshot, base64-encoded PNG)
  • 02-full-bundle-copy-current-head.txt
  • 03-saved-bundle-current-head.txt
  • 04-summary-copy-menu-current-head.png.base64.txt (summary-copy menu screenshot, base64-encoded PNG)
  • 05-summary-copy-current-head.txt

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 26, 2026
@christineyan4 christineyan4 marked this pull request as ready for review June 26, 2026 20:27
Port PR openclaw#562 onto current main and harden diagnostics redaction so JSONL remains parseable while sensitive values, metadata keys, paths, emails, headers, and compound JSON values are sanitized before export.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@shanselman shanselman merged commit 8c9acbc into openclaw:main Jun 27, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. merge-risk: 🚨 session-state 🚨 Merging this PR could lose, corrupt, stale, or mis-associate session or agent state. P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants